                 Expandable Menu Applet - cracking in Java
                      (c) noname/CrackPL'98  Nov 1998


Cel: Expandable Menu Applet              [ ENTERCD#1 7/98 ]

Narzdzia: JAD - dekompilator klas JAVY  [ http://web.unicom.com.cy/~kpd/jad.html ]
           JDK - kompilator JAVY         [ http://java.sun.com/ ]

Wstp:

 Dzisiaj przedstawi zupenie nowe podejcie do crackowania, a mianowicie
 crackowanie programw napisanych w JAVIE. JAVA zdobywa coraz wiksz
 popularno i moemy si spodziewa coraz wikszej iloci produkcji napisanych
 w tym jzyku. Po naszej (crackerw) stronie  stoi "skonno" klas JAVY do atwej
 dekompilacji.


A wic zaczynamy:

 Program skada si z pliku .exe generujcego parametry appletu. Plikw
 z przykadami i dwch plikw .class (pliki appletu). Kiedy uruchomimy
 plik przykadu pierwsze co rzuca si nam w oczy to czarny prostokt
 z napiem "UNREGISTERED" - trzeba co z tym zrobi.

 Dekompilujemy plik ExpandMenu.class (piszemy "jad ExpandMenu.class").
 W wyniku uzyskalimy plik ExpandMenu.jad. Przegldarka wywietla applet
 przez wywoanie jego funkcji 'paint()'. Szukamy jej w otrzymanym listingu:

    public void paint(Graphics g)
    {
        offscreenGraphics.setColor(backcolor);
        offscreenGraphics.fillRect(0, 0, size().width, size().height);
        if(backimgactive)
        {
            Image image = getImage(backimgURL);
            offscreenGraphics.drawImage(image, 0, 50, size().width, size().height - 50, this);
        }
        offscreenGraphics.setColor(Color.black);
        offscreenGraphics.fillRect(0, 0, size().width, 50);
        offscreenGraphics.setColor(Color.orange);
        offscreenGraphics.setFont(new Font(nodefont.toString(), 3, 10));
        offscreenGraphics.drawString("Expandable Menu Applet (unregistered)", 5, 20);
        offscreenGraphics.drawString("Copyright ApplePie Software 1998", 5, 40);


 Teraz najlepiej usumy linie :

        [...].setColor(Color.black);                     <-- ustawienie czarnego koloru
        [...].fillRect(0, 0, size().width, 50);          <-- narysowanie prostokta
        [...].setColor(Color.orange);                    <-- ustawienie pomaraczowego koloru
        [...].setFont(new Font(nodefont.toString(), 3, 10));   <-- ustawienie czcionki
        [...].drawString("Expandable Menu Applet (unregistered)", 5, 20); <-- wiadomo co
        [...].drawString("Copyright ApplePie Software 1998", 5, 40);      <-- tez wiadomo

 Lini:
        tree[0].top = 50 + TOPMARGIN;
 Zmiemy na:
        tree[0].top = TOPMARGIN;
 (Margines 50 pikseli potrzebny by na tekst "unregistered:)

 A:
   offscreenGraphics.drawImage(image, 0, 50, size().width, size().height , this);
 Na:
   offscreenGraphics.drawImage(image, 0, 0, size().width, size().height , this);
 (Aby tlo zaczynalo sie od samej gory)


 Teraz wystarczy skompilowa plik ExpandMenu.java ("javac ExpandMenu.java").

Zakoczenie:

  Autor chce od nas 10 bucksw, a nawet nie zada sobie trudu, eby zmieni nazwy
  zmiennych na jakie trudniejsze do zinterpretowania...

  Jeli checsz dalej uywa ten program - zapa za niego (napisz autorowi, ze juz
  masz zarejestrowany plik .class i nie musi si fatygowa, aby Ci go wysa... :)


